// 管理权限模块中的数据(当前登录用户拥有的路由权限: 静态路由(无需权限，直接访问) & 动态路由(必须拥有权限))
//导入所有的静态路由
import {
  constantRoutes,
  asyncRouters
} from '@/router/index'

//管理权限模块中的数据
const state = {
  //当前用户是权限
  //静态路由(无需权限，直接访问)
  //动态路由(必须拥有权限)
  routes: constantRoutes

}
const mutations = {
  //动态设置路由
  //payload :将来要动态添加的路由
  SET_ROUTES(state, payload) {
    state.routes = [...constantRoutes, ...payload]
  }
}
const actions = {
  setRoutes(context, menus) {
    // 得到当前项目中的动态路由
    // 再从动态路由中筛选出来 menus 对应的路由对象
    const newMenus = asyncRouters.filter(item => {
      return menus.some(subitem => {
        return subitem === item.name
      })
    })
    context.commit('SET_ROUTES', newMenus)
    return newMenus
  }
}


export default {
  namespaced: true,
  state,
  mutations,
  actions
}
